Depalletizing robots for an autonomous warehouse

ABSTRACT

An automated robotic depalletizing system includes at least one robot for transferring inventory that arrives on a pallet to different storage locations within a warehouse. The robot may perform the automated depalletizing by moving to the pallet having a stacked arrangement of a plurality of objects, identifying, via a sensor, a topmost object of the plurality of objects, aligning a retriever with the topmost object, engaging the topmost object with the retriever, and transferring the topmost object from the pallet to the robot by actuating the retriever. The automated depalletizing may also be performed via coordinated operations of two or more robots. For instance, a first robot may retrieve objects from the pallet, and a second set of one or more robots may be used to transfer the retrieved objects into storage.

CLAIM OF BENEFIT TO RELATED APPLICATIONS

This application is a continuation of U.S. nonprovisional applicationSer. No. 16/203,956 entitled “Depalletizing Robots for an AutonomousWarehouse”, filed Nov. 29, 2018. The contents of application Ser. No.16/203,956 are hereby incorporated by reference.

TECHNICAL FIELD

The present invention relates to the technical field of robotics.

BACKGROUND INFORMATION

Robots may be used to reduce costs in many industries and sectors byautomating various manually performed tasks. Robots are especiallyeffective at performing repeat mundane tasks.

Warehouse management and/or inventory management can greatly benefitfrom automation. Warehouse management and/or inventory management mayinclude repeated tasks such as receiving and storing new inventory.Other repeated tasks may include order retrieval, fulfillment, andpackaging. These are examples of some tasks that currently have highrates of manual or human execution.

Automating one or more of these tasks may require special purpose robotsthat have the functionality to perform the tasks, and that are alsoprogrammed to perform the tasks. Automation of these and other tasks maylead to lower error rates, higher throughout via continuous operation ofthe robots, and lower operating costs.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example of automated depalletizing in accordancewith some embodiments described herein.

FIGS. 2A and 2B illustrate a specialized method of operation by which arobot performs automated depalletizing in accordance with someembodiments.

FIGS. 3A and 3B illustrate another method of operation by which a robotperforms automated depalletizing in accordance with some embodiments.

FIGS. 4A and 4B illustrate a robot using additional information obtainedfor objects on a pallet in order to optimize the automated depalletizingin accordance with some embodiments described herein.

FIG. 5 illustrates an example of automated depalletizing via coordinatedand synchronized robot operation in accordance with some embodimentsdescribed herein.

FIG. 6 illustrates the autonomous and robotic unsynchronizeddepalletizing in accordance with some embodiments described herein.

FIG. 7 illustrates an example of automated depalletizing via coordinatedoperation of the same or similar robots in accordance with someembodiments described herein.

FIG. 8 illustrates an example of a robot transferring a depalletizedobject into storage in accordance with some embodiments describedherein.

FIG. 9 illustrates unsynchronized depalletizing by two robots inaccordance with some embodiments described herein.

FIG. 10 presents a process for automated depalletizing and inventorystorage performed by one or more depalletizing robots in accordance withsome embodiments described herein.

FIG. 11 illustrates an example of a robot for performing automateddepalletizing in accordance with some embodiments described herein.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements.

Systems and/or methods, as described herein, automate various tasksperformed in a warehouse. The tasks may be automated via a set ofautonomous robots that include specialized functionalities and methodsof operation for performing one or more tasks without human assistanceor involvement. In some embodiments, the robots may automatedepalletizing tasks for transferring inventory that arrive on pallets todifferent storage locations within a warehouse.

Depalletizing tasks are difficult to automate because of the differentstacked arrangements for objects on different pallets. As such, robotscannot simply perform the same operations when depalletizing differentpallets, and may be required to dynamically adjust their operationsbased on how the objects are stacked or arranged on different pallets,and also based on the different sizes and weights of the objects on thedifferent pallets. For instance, a robot cannot simply retrieve thefirst object it finds in the pallet because doing so may cause otherobjects stacked atop the first object to fall over and/or be damaged.Similarly, a pallet may contain objects of different sizes and shapes.In such cases, the robot has to adjust its operation for retrieval ofeach different object to ensure that the object and/or neighboringobjects are not damaged.

Accordingly, some embodiments provide one or more depalletizing robotsthat include specialized functionality (e.g., sensors, actuators, and/orother mechanical elements), and specialized methods of operation tosafely retrieve objects of different sizes and weights from stackedarrangements of different heights, depths, and/or widths on differentpallets without damaging the items or the arrangements. Thedepalletizing robots may also transfer the retrieved objects todifferent storage configurations (e.g., stored atop one another,arranged in rows, and/or placed on shelfs, racks, or other storageunits) within the warehouse.

The depalletizing robots and resulting automation may provide variousadvantages over humans that manually perform the depalletizing tasks.For instance, the robots may reach objects on taller stacks or palletsthat humans may be unable to access without a ladder or lift. The robotsmay also provide more careful handling of the objects, verify correctplacement of the objects in storage, operate all hours of the day,and/or retrieve objects that may be too heavy or large for humans tosafely retrieve. Other advantages of the robot-based automateddepalletizing may include optimizing the storage of objects bydynamically selecting storage locations for the objects based on demandand/or inventory on hand.

FIG. 1 illustrates an example of automated depalletizing in accordancewith some embodiments described herein. FIG. 1 illustrate differentinteractions between depalletizing robot 110 and objects of pallet 120.In particular, disposed atop pallet 120 may be a stacked arrangement ofobjects that are to be relocated to one or more storage locations in awarehouse. Removing any object but the topmost object from pallet 120may alter the stacked arrangement, and/or may cause one or more objectsto fall and be damaged. Other issues may arise from improperlydepalletizing the objects from pallet 120. For instance, an object beingretrieved and/or other objects that are underneath the object beingretrieved may be damaged when the retrieved object is improperlysupported (e.g., weight, width, and/or other properties of the objectare not supported) during retrieval. Also, pallet 120 is an example ofone stacked arrangement of objects. Other pallets may include differentsized or weighted objects that are stacked in different arrangements.

FIG. 1 illustrates depalletizing robot 110 using its specializedfunctionality and a specialized method of operation to safely retrieveobjects from pallet 120 in order to automate the depalletizing task in awarehouse in accordance with some embodiments described herein. As shownin FIG. 1 , robot 110 may move (at 1) to pallet 120. In someembodiments, robot 110 uses a scanner, camera, and/or other sensor toverify its positioning before a correct pallet (e.g., pallet 120).

Robot 110 may align (at 2) the positioning of its base and/or a platformthat is atop an actuated lift with a position of a topmost object in thestacked arrangement on pallet 120. When multiple objects are at the sameheight on pallet 120, robot 110 may align the platform with the topmostobject that is also closest or frontmost to robot 110.

The alignment (at 2) may involve at least two operations. A firstalignment operation may involve robot 110 raising the lift to align aheight of the platform with a height of the topmost object. Robot 110may use various cameras and/or other sensors located about the platformto identify the topmost object, and to determine the height at which thetopmost object rests atop other objects. A second alignment operationmay involve robot 110 repositioning the platform to be horizontallyaligned with a position of the topmost object. In some embodiments,robot 110 may use one or more sensors (e.g., a camera) about theplatform to align left and right sides of the platform to left and rightsides of the topmost object. In some embodiments, robot 110 may use theone or more sensors about the platform to align left and right sides ofthe platform with a center of the topmost object.

Aligning (at 2) the platform with the topmost object is performed forsafe retrieval of the topmost object. In particular, the alignment (at2) of the platform with the topmost object allows robot 110 to retrievethe topmost object while supporting the topmost object about its centerand from below. This manner of retrieval may prevent the topmost objectfrom being damaged by minimizing the possibility of the topmost objectfalling off to a side when retrieved, and/or underneath objects frombeing damaged because the platform of robot 110 is used to support theweight of the topmost object as it is being retrieved from pallet 120.Achieving the desired alignment therefore requires using specializedfunctionalities and programming of robot 110 that are described below.

Once alignment (at 2) is achieved, robot 110 may extend (at 3) aretriever to engage the topmost object. In some embodiments, theretriever may be moved across the platform by an actuator. The retrievermay use one or more of a grasping, suction, and/or magnetic mechanism toengage the topmost object.

Robot 110 may then retract (at 4) the retriever that has engaged thetopmost object. Retracting the retriever causes the topmost object toslide and/or lift off the stacked arrangement and onto the platform ofrobot 110.

Robot 110 may lower (at 5) the lift once the topmost object is safely onthe platform. Lowering the lift that retains the weight of the topmostobject may improve robot's 110 center of gravity, thereby allowing robot110 to transfer the topmost object to a different location more quicklyand safely.

In some embodiments, robot 110 may scan an identifier associated withthe topmost object and/or pallet 120 after retrieving the topmost objectfrom pallet 120. The scanned identifier may be wirelessly transmitted toan inventory management system and/or other robots to identify theextraction of the object from pallet 120, and to track the inventory aspallet 120 is depalletized.

In some embodiments, multiple robots 110 may perform the automateddepalletizing that is illustrated in FIG. 1 . In particular, a firstrobot may retrieve a topmost object from pallet 120, and may move awayfrom pallet 120 in order to transfer the retrieved object to a storagelocation. A second robot may then arrive at pallet 120, and retrieve thenext topmost object. In this manner, two or more robots 110 maycoordinate their operations to automate and expedite the depalletizingthat is illustrated in FIG. 1 .

FIGS. 2A and 2B illustrate a specialized method of operation by whichrobot 110, using various onboard sensors, actuators, wireless radios,motors, and/or other mechanical elements, performs automateddepalletizing in accordance with some embodiments. The automateddepalletizing may be initiated in response to notifying robot 110 thatpallet 120 is present in the warehouse with objects awaiting to bedepalletized. For instance, FIG. 2A illustrates wirelessly providing (at1) robot 110 with one or more identifiers. The one or more identifiersmay include a first identifier for identifying a pallet with objectsawaiting to be depalletized, and/or a second identifier for identifyinga location of the pallet. The identifiers may be wirelessly transmittedover a WiFi, Long Term Evolution (LTE), and/or other networks thatindirectly or directly communicate with robot 110. The identifiers maybe numerical or alphanumerical values that can be encoded as barcode,Quick Response (QR) code, other fiducials, or other visual feature thatis presented on pallet 120 or one or more objects on pallet 120.

Based on the provided (at 1) identifiers, robot 110 may identify a pathto pallet 120, and may move to pallet 120 via the identified path. Forinstance, robot 110 may store a map of the warehouse, and may plot apath to the location associated with the second identifier based on thestored map. In some embodiments, a centralized robotic control systemmay receive the identifiers and provide the path to robot 110. Thecentralized robotic control system may track a position of robot 110 inthe warehouse, may identify the location of pallet 120 based on theprovided identifiers, and may generate a path for robot 110 to arrivebefore pallet 120.

After navigating to pallet 120, robot 110 may use an onboard scanner,camera, or other sensor to scan (at 2) an identifier of pallet 120, andconfirm that robot 110 is before the correct pallet. The scanner orsensor may be located at the base of robot 110 or on the platform orretriever of robot 110. Robot 110 verifies it is at the correct pallet120 based on the scanned (at 2) identifier from pallet 120 matching tothe first identifier provided (at 1) to robot 110.

Robot 110 may commence the object extraction after successfullyverifying it has arrived before pallet 120. To perform the objectextraction, robot 110 may first identify a next object to retrieve frompallet 120. As noted above, selection of an incorrect object couldresult in damaging one or more of the objects, robot 110 being unable toretrieve the object, and/or modifying the stacked arrangement of objectson pallet 120 such that the retrievals of subsequent objects become morechallenging.

As shown in FIG. 2B, robot 110 raises its lift until a sensor on thelift and/or platform atop the lift detects (at 3) the topmost object onpallet 120. In some embodiments, robot 110 detects (at 3) the topmostobject by activating the sensor on the platform atop the lift. Thesensor may identify objects of the pallet as the lift is raised, and mayidentify the topmost object once the lift moves the sensor above thetopmost object and the sensor no longer detects objects of the pallet.

Robot 110 may lower the lift back down until the platform is alignedwith the topmost object. In some embodiments, robot 110 may determinewhen the platform is aligned with the topmost object via the sensor onthe platform. For instance, the sensor may detect (at 4) a gap or spacebetween the topmost object and the underneath object, and robot 110 mayalign the platform height with the detected (at 4) gap. In someembodiments, the sensor may detect (at 4) the bottom of the topmostobject and the top of the underneath object via feature matching orimage processing. In some embodiments, the sensor may detect (at 4) theedges of the topmost object so that the robot 110 may align the platformheight to the bottom of the topmost object based on the sensor output.In some embodiments, robot 110 may store and/or obtain a size of eachobject on the pallet. For instance, from scanning (at 2) pallet 120identifier, robot 110 may submit the scanned identifier to an inventorymanagement system that then provides robot 110 with the dimensions ofthe objects on pallet 120. Once the platform is raised above the topmostobject, robot 110 may lower the platform by a height equal to one objecton the platform.

Upon aligning the platform height to the bottom of the topmost object onpallet 120, robot 110 may activate the retriever on the platform toengage the topmost object. The retriever element may include a sensor todetermine (at 5) when contact is made with the topmost object. Theretriever may engage the topmost object upon contacting the topmostobject. As noted above, the retriever may engage the topmost objectusing one or suction, magnet, or grasping mechanism. The retriever mayretract to a backmost position on the platform, thereby ensuring thatthe topmost object is entirely on the platform.

FIGS. 3A and 3B illustrate another method of operation by which robot110, using various onboard sensors, actuators, wireless radios, motors,and/or other mechanical elements, performs automated depalletizing inaccordance with some embodiments. The automated depalletizing operationsof FIGS. 3A and 3B may be initiated in response to providing anidentifier associated with a pallet 120 that is waiting to bedepalletized to one or more robots 110, and having at least one robot110 move to a location of pallet 120.

Upon arriving before pallet 120, robot 110 may scan an identifier ofpallet 120 to verify the scanned identifier matches with the identifiesthat was provided to robot 110. A match indicates that robot 110 isbefore the correct pallet. Robot 110 may obtain information aboutobjects on pallet 120 as part of receiving the provided identifier.Alternatively, robot 110 may obtain information about objects on pallet120 in response to scanning the identifier of pallet 120 and eitherquerying memory using the scanned identifier for the object information,or submitting the scanned identifier to a remote server and receivingthe object information from the remote server. In some embodiments,robot 110 may obtain object information including fiducials and/orvisual features that can be used to differentiate the objects on pallet120, the number of objects in the stacked arrangement, dimensions of theobjects, and/or other data that robot 110 may use to more efficientlyidentify the topmost object on pallet 120.

For instance, FIG. 3A illustrates robot 110 gradually raising its lift,and identifying (at 1, 2, 3, and 4) one or more fiducials or visualfeatures of the objects on pallet 120 as the lift is raised. Robot 110uses a sensor to identify each fiducial or visual feature. The fiducialsmay be barcodes or other markers that encode some information. Thesensor may shine light on the fiducial, and scan the fiducials based onthe reflected light. The visual features may be any visible marking ordistinctive visual element of an object on pallet 120. For instance, thevisual features may include design elements, lettering, shapes, and/orcolors. The sensor may be a camera that takes one or more images of thevisual features. An onboard processor of robot 110 may perform imageanalysis and/or feature matching to detect the visual features and theirplacement or positioning within the images. In some embodiments, robot110 may send the images to a remote server, and the remote server mayperform the feature matching on behalf of robot 110 and provide robot110 with the feature matching results. In some embodiments, anidentified fiducial and/or visual feature may correspond to a particularlocation about an object. For instance, a particular visual feature mayappear at the center of each object in pallet 120. Robot 110 may obtaininformation about the visual feature locations based on the scannedidentifier of pallet 120.

Robot 110 may continue to raise (at 5) the platform over the topmostobject until no more objects are detected. Robot 110 may lower (at 6)the platform until the visual feature of the topmost object is onceagain scanned. From identifying the visual feature and the obtainedinformation about the positioning of the visual feature, robot 110 maydetermine (at 7) an additional distance to lower (at 8) the platform inorder to align the platform with the bottom of the topmost object. Forinstance, robot 110 may scan a fiducial and/or image a particular visualfeature of the topmost object, and may lower the platform one additionalfoot when the fiducial or the particular visual feature is positionedone foot above the bottom of the object.

Once the platform is aligned with the bottom of the topmost object,robot 110 may retrieve (at 9) the topmost object onto the platform,lower the platform, and return the retrieved object to storage.Additionally, robot 110 may provide (at 10) a remote server with theidentified fiducial or visual feature of the retrieved object, and theremote server may update an inventory record and/or a record of objectsremaining on pallet 120.

In some embodiments, robot 110 may obtain additional information aboutobjects on pallet 120 prior to extracting the objects from pallet 120.The additional information may be used to make the identification andextraction of the topmost object more efficient.

FIGS. 4A and 4B illustrate robot 110 using additional informationobtained for objects on pallet 120 in order to optimize the automateddepalletizing in accordance with some embodiments described herein. Theadditional information may specify the number of objects in the stackedarrangement of pallet 120, and/or different fiducials or visual featuresof each object in the stacked arrangement. Robot 110 may obtain theadditional information as part of the instruction from a remote serverto depalletize pallet 120. Alternatively and as shown in FIG. 4A, robot110 may obtain the additional information by scanning (at 1) theidentifier of pallet 120, and obtaining (at 2) information about objectson pallet 120 from a remote server in response to submitting the scannedidentifier to the remote server.

In FIG. 4A, robot 110 receives (at 2) a unique list of fiducials and/orvisual features associated with each object on pallet 120, and acorresponding ordering of the fiducials and/or visual features. In someembodiments, each object on pallet 120 may have the same fiducial orvisual feature. However, the additional information may identify thenumber of objects in each vertical stack on pallet 120.

Robot 110 may then raise its platform while a sensor about the platformscans (at 3) and/or identifies fiducials and/or visual features of theobjects on pallet 120. Robot 110 may compare each scanned fiducial oridentified visual feature against the object list and ordering in orderto determine (at 4) if the topmost object has been reached. Forinstance, robot 110 may determine if a scanned fiducial or identifiedvisual feature is unique to the topmost object on pallet 120, or maydetermine whether it has scanned a particular number of fiducials oridentified a particular of visual features to have reached the topmostobject on pallet 120. Robot 110 continues to raise the platform untilrobot 110 scans (at 5) a fiducial and/or identifies a visual feature anddetermines (at 6), based on the obtained additional information aboutthe object on pallet 120, that the fiducial and/or visual featureidentifies the topmost object on pallet 120.

As shown in FIG. 4B and in response to identifying the topmost object,robot 110 lowers (at 7) the platform to align the platform with thebottom of the topmost object. The distance to lower the platform may bederived (at 7′) from the obtained information providing a position ofthe fiducial or visual object about the object, dimensions of theobject, and/or distance from the fiducial or visual object to the bottomof the object.

Robot 110 may then use its retriever (at 8) to engage and extract thetopmost object from pallet 120, before lowering the platform, andplacing the retrieved object in storage. Robot 110 may also notify theremote server of the removal of the topmost object by sending (at 9) thefiducial, visual feature, and/or other identifier associated with thetopmost object to the remote server. The remote server may then update(at 10) the information for pallet 120 so that if another robot is usedto extract the next topmost object, the robot is provided with updatedinformation as to the objects remaining on pallet 120.

The use of robot's 110 onboard sensor enables the specialized methods ofoperation by which robot 110 is able to autonomously depalletize objectsfrom pallet 120, and still be able to depalletize objects from otherpallets that may have different stacked arrangements and/or objects ofdifferent sizes, shapes, weights, and/or other dimensions. In otherwords, the robot 110, via the specialized methods of operationillustrated in the figures above, dynamically adjusts its operationsbased on detected pallet configurations and detected objects on thepallets.

Some embodiments perform the automated depalletizing based on thecoordinated and synchronized operation of two or more robots. Thecoordinated and synchronized operation may use two or more robots toexpedite the extraction of objects from a pallet by partitioning thedepalletizing tasks between the two or more robots. FIG. 5 illustratesan example of automated depalletizing via coordinated and synchronizedrobot operation in accordance with some embodiments described herein.

FIG. 5 illustrates robot 110 coordinating its operation with secondrobot 510. Second robot 510 may include a robotic arm, such as deltarobotic arm, that is fixed to a ceiling or other structure above pallet120. The coordinated operation of robots 110 and 510 may improve therate at which objects are extracted from pallet 120, and/or are enteredinto storage. Multiple robots 110 may coordinate their operations withrobot 510 to further increase the depalletizing rate.

As shown in FIG. 5 , robot 110 may move (at 1) towards pallet 120 inresponse to receiving messaging to depalletize objects from pallet 120.Robot 110 may wirelessly message (at 1′) robot 510 upon robot 110arriving at pallet 120. Alternatively, robot 510 may detect the arrivalof robot 110 before pallet 120. The wireless messaging and/or detectionby robot 510 triggers a specialized coordinated and synchronizeddepalletizing procedure that is performed by robots 110 and 510. Thespecialized coordinated and synchronized depalletizing procedure mayinclude a sequence of concerted operations that specifically leveragethe functionalities and operational capabilities of robots 110 and 510in order to streamline the transfer of objects from pallet 120 intostorage. The sequence of concerted operations maximizes robot throughputand minimizes time either robot 110 or 510 is idle, while ensuring thatthe transferred objects are not damaged and are correctly placed.

As shown in FIG. 5 , the sequence of concerted operations may includerobot 510 identifying and engaging (at 2′) the topmost object on pallet120, while robot 110 aligns (at 2) its platform with the topmost object.As in FIG. 1 , robot 110 may perform a two-step alignment that aligns aheight of the platform to a bottom of the topmost object on the stackedarrangement of pallet 120, and that further aligns the platform aboutcentrally to the bottom of the topmost object. The alignment of robot110 must also be coordinated with the topmost object that is engaged byrobot 510. For instance, pallet 120 may include left and right topmostobjects. Robots 110 and 510 may communicate with one another, viawireless messaging, as to which of the two topmost objects to extractfirst. Alternatively, one of robots 110 and 510 may monitor movements ofthe other in order to coordinate retrieval of the same topmost object.Robot 510 may use one or more of a grasping, suction, and/or magneticmechanism to engage the topmost object. Robot 510 may include one ormore cameras and/or sensors to detect the topmost and/or closest objectto robot 110.

The sequence of concerted operations may further include robot 510moving (at 3) the engaged topmost object on the platform of robot 110.In some embodiments, the sequence of concerted operations may causerobot 510 to delay moving the engaged topmost object until the platformof robot 110 is aligned with the topmost object. Coordinating theoperations and timing of robots 110 and 510 may prevent the topmostobject and/or other objects on pallet 120 from being damaged when robot510 slides the topmost object from pallet 120 onto the platform of robot110, and/or lifts and places the topmost object from pallet 120 onto theplatform of robot 110. For instance, robot 510 may be unable to reachthe platform of robot 110 if the platform is not aligned with pallet120, or robot 510 may use the platform to support some of the weight ofthe topmost object and, if the platform is not aligned, the topmostobject may be dropped or otherwise damaged. Accordingly, robot 110 maywirelessly signal robot 510 when the platform is aligned. In someembodiments, robot 510 may detect when the platform of robot 110 isproperly aligned in order to move (at 3) the engaged topmost object ontothe platform.

Robot 510 may wirelessly signal (at 4) robot 110, via one or morewireless networks, once the topmost object has been placed onto theplatform and/or robot 510 has disengaged the topmost object. In someembodiments, robot 110 may use one or more sensors about its platform todetect placement of the object on the platform. For instance, theplatform may include load cells that can detect the weight of theobject, and/or cameras to detect when the object is properly placed onthe platform and disengaged by robot 510. Robot 110 may begintransferring (at 4′) the object into storage. Another robot 110 may thenposition itself before pallet 120, thereby triggering robot 510 toretrieve the next topmost object from pallet 120.

In FIG. 5 the coordinated depalletizing procedures is between one ormore of a first set of robots (e.g., robot 110) and a second robot(e.g., robot 510). For instance, robot 510 may retrieve objects frompallet 120, and may transfer the retrieved objects to different robots110 of the first set of robots that arrive in order to transferdifferent objects.

In some embodiments, a temporary storage location is used to allow forunsynchronized depalletizing of pallet 120 by two or more robots. FIG. 6illustrates the autonomous and robotic unsynchronized depalletizing inaccordance with some embodiments described herein.

As shown in FIG. 6 , robots 110 and 510 may receive (at 1) commands todepalletize objects from pallet 120 in an unsynchronized manner usingtemporary storage 610. Temporary storage 610 may be a table, rack, orother storage apparatus that can be moved and placed adjacent todifferent pallets 120.

As robot 110 moves (at 2′) to temporary storage 610, and before robot110 arrives at temporary storage 610, robot 510 may transfer (at 2) oneor more objects from pallet 120 onto temporary storage 610. Upon robot110 arriving and repositioning (at 3) before temporary storage 610, oneor more objects from pallet 120 may already have been transferred (at 2)to temporary storage 610. Consequently, robot 110 may retrieve (at 4) anobject from temporary storage 610 as robot 510 continues to transfer (at4′) other objects from pallet 120 to temporary storage 610. Robot 510need not wait for robot 110 in order to perform its subset ofdepalletizing tasks. Similarly, robot 110 can perform its differentsubset of depalletizing tasks while robot 510 is performing other tasks.In this manner, robots 110 and 510 in FIG. 6 are able to depalletizeobjects from pallet 120 in an unsynchronized but still coordinatedmanner.

In some embodiments, the unsynchronized operation may increaseefficiency of robots 110 and 510. For instance, one robot may completeits tasks faster than the other robot. The unsynchronized operationallows the faster robot to continue operating without stalling for theslower robot to complete its tasks. The unsynchronized operation alsoallows multiple instances of the slower robot to be used to keep up withthe speed of the faster robot. Assume, for example, that in FIG. 6 ,robot 510 transfers objects from pallet 120 to temporary storage 610 attwice the speed as robot 110 can retrieve and transfer objects fromtemporary storage 610. In this scenario, two instances of robot 110 maybe used to retrieve and transfer objects from temporary storage 610 inorder to keep pace with robot 510 and achieve the optimal depalletizingrate.

In some embodiments, different instances of the same robot (e.g., thefirst set of robots or robot 110) can be used to perform differentportions of the automated depalletizing. Reusing the same robot fordifferent portions of the automated depalletizing may lead to reducedcosts as less time and money is devoted to robot development. FIG. 7illustrates an example of automated depalletizing via coordinatedoperation of the same or similar robots in accordance with someembodiments described herein.

In FIG. 7 , robot 110 may coordinate its operation with a similar robot710. In particular, robot 110 may transfer objects that are retrievedfrom pallet 120, and robot 710 may retrieve the objects from pallet 120and may provide the retrieved objects to robot 110. The coordinatedoperation may include robot 710 aligning itself relative to a topmostobject of pallet 120, and retrieving (at 1) the topmost object frompallet 120 as robot 110 moves (at 1′) towards pallet 120. Robot 710 mayuse one or more sensors to identify the topmost object, align itsplatform with a bottom of the topmost object, and determine when theretriever has engaged the topmost object for retrieval. Robot 110 maywirelessly notify robot 710 when it is near pallet 120 in order totrigger the coordinated operation. Alternatively, robot 710 may detectwhen robot 110 approaches pallet 120.

Upon robot 110 arriving before pallet 120, robot 710 may have completedretrieving (at 2) the object, and may commence the transfer (at 3) ofthe retrieved object to robot 110. Transferring (at 3) the retrievedobject may involve additional coordinated activity by robots 110 and710. In particular, robot 710 may turn to face robot 110, and may lowerits lift to a preset height at which the transfer occurs. Meanwhile,robot 110 may align its positioning so that its platform is at the sameheight and/or is centered with the platform of robot 710. Robots 110 and710 may have sensors about their respective platforms to achieve thealignment for safe and coordinated transfer of the object from robot 710to robot 110.

Transferring (at 3) may further include robot 110 extending itsretriever towards robot 710 while robot 710 uses its retriever to pushthe retrieved object closer to robot 110. Robot 110 may use itsretriever to engage the object, and assist in the transfer of the objecton the platform of robot 110. For instance, robot 710 may push theobject halfway onto the platform of robot 110 at which point robot 110engages the object with its retriever and retracts the retriever to pullthe object further onto the platform of robot 110.

In some embodiments, robot 110 may provide (at 1″) a first message torobot 710 when robot 110 is a first distance from pallet 120 and isapproaching pallet 120. In response to receiving (at 1″) the firstmessage, robot 710 may commence retrieval (at 1) of the topmost objectfrom pallet 120. Robot 110 may subsequently provide (at 2′) a secondmessage to robot 710 when robot 110 is a closer second distance frompallet 120. In response to receiving the second message, robot 710 maytransfer (at 3) the retrieved object to robot 110. Robot 110 may thenenter the object into storage while robot 710 retrieves a next topmostobject from pallet 120 for another robot that is queueing near pallet120.

FIG. 8 illustrates an example of robot 110 transferring a depalletizedobject into storage in accordance with some embodiments describedherein. In FIG. 8 , robot 110 may transfer the depalletized object tostorage rack 810. Robot 110 may identify a particular storage rack froma plurality of storage racks to transfer the object to based on theobject that is being transferred. For instance, the object may have astatic location in the warehouse corresponding to storage rack 810. Thestatic location may be where other units of the same object are stored.

As shown in FIG. 8 , robot 110 may scan (at 1) an identifier associatedwith pallet 120 or the retrieved object, and may map (at 2) theidentifier to information about the object including the particularstorage rack where the object should be stored. In some embodiments, theone or more scanned identifiers may map to additional information suchas the demand and/or dimensions of the object. Based on the demandand/or dimensions, robot 110 may dynamically select (at 2′) a storagelocation or storage rack 810 for storing the retrieved object, and maymove (at 3) to the selected location or rack 810.

Robot 110 may identify (at 4) an empty location about storage rack 810where the depalletized object is to be stored (e.g., with other units ofthe same object). For instance, storage rack 810 may be used to storethe retrieved object and/or other units of the same object at adesignated location about rack 810, or may set a designated location forthe retrieved object. The identifier mapping (at 2) may identify thedesignated location, and robot 110 may identify and/or create an emptyspace at that designated location. In a dynamic storage scenario, rack810 may store different objects in different spaces. Robot 110 mayselect (at 2′) storage rack 810, and may identify (at 4) an emptylocation upon arriving at rack 810 by scanning for the empty location.To scan for the empty location, robot 110 may raise its lift and use asensor about the platform atop the lift to identify (at 4) the emptylocation to store the retrieved object. In some embodiments, robot 110and/or an inventory management system may track empty locations aboutdifferent racks 810 may direct robot 110 to a particular location aboutrack 810 in response to robot 110 scanning (at 1) the object identifier,and wirelessly providing the scanned identifier to the inventorymanagement system. Robot 110 may determine the empty location using acamera and/or other sensors. The empty location may correspond to anempty space next to, in front of, or above another unit of the sameobject at rack 810. Alternatively, robot 110 may create the emptylocation by pushing the object into other objects in rack 810 when rack810 is organized for last in first out access.

To transfer the object to the empty location, robot 110 may align (at 5)the object with the identified empty location. Once again, robot 110 mayperform a two-stage alignment by manipulating a lift that raises orlowers the platform on which the object rests to a height of the emptylocation, and by positioning the platform to be parallel to and centeredabout the empty location. Once robot 110 is properly aligned, robot 110may enter (at 6) the object to the storage location by pushing orotherwise transferring the object from the platform to the emptylocation on rack 810.

Robot 110 may scan (at 7) a first identifier corresponding to thestorage location that the object now occupies (e.g., a fiducial at thestorage location), and/or a second identifier that is associated withthe stored object (e.g., a fiducial on the object). The first identifiermay be used to confirm that the object is stored to the correct rackand/or storage location (e.g., rack 810).

Robot 110 may wirelessly transmit (at 7) the first identifier and/or thesecond identifier to an inventory management system or database in orderto update a record that is used to track the object in the warehouse. Inparticular, the first and second identifiers may be used to map theobject to the corresponding storage location. The scanned identifiersmay also be used to updated a quantity of the object that is stored inthe warehouse.

In some embodiments, robot 110 may store a depalletized object in astorage location that includes other objects. For instance, robot 110may place an object on a storage rack that includes other items of thesame object. The objects may have a particular arrangement on thestorage rack. For instance, the objects may be placed in front of oneanother, next to one another, or atop one another. When the objects at astorage location are placed in front of one another, robot 110 mayidentify the frontmost object, align its positioning (e.g., the platformwith a retrieved object) with the frontmost object, and may push aretrieved object from its platform, using the retriever, into thefrontmost object. The other objects may be pushed back into the storagelocation with the retrieved object being placed as the new frontmostobject. When the objects at a storage location are placed atop oneanother, robot 110 may identify the topmost object, align its platformwith a top face of the topmost object, and may place the retrievedobject from its platform onto the topmost object.

The coordinated depalletizing operation of two instances of the samerobot, as shown in FIG. 7 , can also be performed in an unsynchronizedmanner. FIG. 9 illustrates unsynchronized depalletizing by two robots inaccordance with some embodiments described herein.

As shown in FIG. 9 , robot 710 may be tasked with removing objects offpallet 120 and placing them on temporary storage 910. Robot 710 may havealready transferred (at 1) a first object from pallet 120 to temporarystorage 910 as robot 110 moves (at 1′) to temporary storage 910.

Rather than wait for robot 110 to arrive to receive the first object,robot 710 places the first object to temporary storage 910, and beginsretrieval (at 2) of a second object from pallet 120. Upon arriving attemporary storage 910, robot 110 may retrieve (at 3) the first objectfrom temporary storage 910 while robot 710 contemporaneously places thesecond object to temporary storage 910. Here, as in FIG. 6 , theunsynchronized but coordinated operation of robots 110 and 710 mayaccelerate the depalletizing rate, and may improve overall robotefficiency. Even though the same robots may be performing differenttasks, some tasks may take longer to complete. Accordingly, theunsynchronized operation allows the one or more robots performing thequicker tasks to continue operating without dependence on one or moreother instances of the same robot performing the slower tasks.Additional robots performing the slower tasks may be deployed in orderto optimize the overall task execute rate and maintain pace of therobots performing the quicker tasks.

FIG. 10 presents a process 1000 for automated depalletizing andinventory storage performed by one or more depalletizing robots inaccordance with some embodiments described herein. Process 1000 mayinclude receiving (at 1010) notification of a pallet with objects thatare ready for transfer into storage. The notification may be providedvia wireless messaging to robot 110. The wireless messaging may betriggered in response to detecting arrival of a delivery truck and/oroffloading the pallet from the delivery truck. For instance, a human orother robot may scan a first identifier associated with the pallet whenthe pallet is received and/or its objects are ready for transfer intostorage, and scan a second identifier associated with the location ofthe pallet in the site. The scanned identifiers may be sent to a remoteserver that controls operations of robots 110. The first identifier mayinclude a barcode, fiducial, radio frequency identifier (“RFID”), and/orother scannable or detectable value that is located on the pallet or isassociated with the pallet. The second identifier may include a valuethat identifies a location of the pallet in the site. For instance, thesecond identifier may be a scannable fiducial on the floor adjacent tothe pallet, and the human or other robot scans the second identifier toidentify the pallet's location. In some embodiments, the secondidentifier may be a set of coordinates or other values that are enteredor derived from one or more sensors identifying pallet location. Thereceived (at 1010) notification may provide robot 110 the firstidentifier for identifying the pallet, and/or the second identifier foridentifying the location of the pallet within the site.

Process 1000 may include moving (at 1020) robot 110 to the location ofthe pallet that is identified from the second identifier. In someembodiments, robot 110 may store a map of the site in order toautonomously navigate to the pallet location upon receiving the secondidentifier.

Process 1000 may include scanning (at 1030) the first identifier that isassociated with the pallet using a sensor of robot 110 when robot 110arrives at the pallet location. The scanning and matching of the scannedpallet identifier with the first identifier that was received (at 1010)with the notification verifies (at 1035) that robot 110 has located thecorrect pallet.

Process 1000 may also include detecting (at 1040) one or more propertiesof the objects on the pallet based on the scanning (at 1030) of thefirst identifier. For instance, the first identifier may be used tolookup size, weight, shape, order history, demand, and/or otherproperties associated with the objects.

Robot 110 may adjust its retrieval operation based on the detected size,weight, shape, and/or other dimensions of the objects, and may select(at 1050) storage locations in the site for the pallet objects based onthe dimensions and/or demand for the objects. For instance, largerobjects with low demand may be stored further from order fulfillmentstations such that closer locations may be used to store and morequickly transfer smaller and high demand objects from the closerlocations to the order fulfillment stations.

Process 1000 may then include controlling (at 1060) robot 110 inretrieving each object from the pallet, and transferring each object toa selected (at 1050) storage location for that object. The retrieval maybe performed according to any of the automated depalletizing proceduresillustrated in FIGS. 1-7 above and/or other automated depalletizingprocedures.

Robot 110 may activate and deactivate various actuators, motors, and/orother mechanical elements to retrieve and transfer the objects. Robot110 may use an onboard processor and various sensors to determine how tomanipulate the actuators, motors, and/or other mechanical elements fordepalletizing and inventory storage.

FIG. 11 illustrates an example of a robot for performing automateddepalletizing in accordance with some embodiments described herein.Robot 1110 may include a motorized base 1120 on which one or moremotors, batteries, processors, wireless radios, sensors, and wheels aremounted. Motorized base 1120 powers locomotion or movement of robot 1110in three-dimensional space. In some embodiments, motorized base 1120 mayinclude articulating legs, propellers, tracks, or other means oflocomotion besides the illustrated wheels.

Atop motorized base 1120 is lift 1130 that raises and lowers platform1140. As shown, lift 1130 may include a collapsing and expandingstructure. In some embodiments, lift 1130 may include a pneumatic pistonor other means for raising and lowering platform 1140.

Platform 1140 may include an elongated surface onto which objectsretrieved by robot 1110 may be retained during transport. Platform 1140may also include a mechanical retriever for retrieving containers and/orother objects onto platform 1140. The mechanical retriever may includeat least one motor for moving a retrieval element. The retrieval elementmay include a vacuum that uses suction to engage containers and/or otherobjects. The vacuum may be located at a distal end of a telescoping orother expandable element that can position the vacuum at differentlengths from the robot. For instance, the expandable element may expandseveral feet in front of robot 1110 in order to place the vacuum at thedistal end against an object that is recessed within a storage location.In some embodiments, the retrieval element may alternatively include agripper, articulating mechanical arm, or other means to grab orotherwise engage containers and/or objects.

Robot 1110 may use one or more onboard processors to coordinateoperations with other robots and/or perform the specialized methods ofoperation for depalletizing objects from a pallet. For instance, theprocessor may activate and control one or more actuators and sensors ofrobot 1110 to navigate to a first location of a pallet, alignpositioning for extract of a topmost object, retrieve the topmostobject, and deliver the topmost object to a storage location in awarehouse.

Robot 1110 is presented as one example of an autonomous robot that mayperform automated depalletizing. Other robot embodiments and theoperations performed by the other robot embodiments may similarly becoordinated and controlled for automated depalletizing according to themethodologies presented herein.

The foregoing description of implementations provides illustration anddescription, but is not intended to be exhaustive or to limit thepossible implementations to the precise form disclosed. Modificationsand variations are possible in light of the above disclosure or may beacquired from practice of the implementations.

The actual software code or specialized control hardware used toimplement an embodiment is not limiting of the embodiment. Thus, theoperation and behavior of the embodiment has been described withoutreference to the specific software code, it being understood thatsoftware and control hardware may be designed based on the descriptionherein.

Some implementations described herein may be described in conjunctionwith thresholds. The term “greater than” (or similar terms), as usedherein to describe a relationship of a value to a threshold, may be usedinterchangeably with the term “greater than or equal to” (or similarterms). Similarly, the term “less than” (or similar terms), as usedherein to describe a relationship of a value to a threshold, may be usedinterchangeably with the term “less than or equal to” (or similarterms). As used herein, “exceeding” a threshold (or similar terms) maybe used interchangeably with “being greater than a threshold,” “beinggreater than or equal to a threshold,” “being less than a threshold,”“being less than or equal to a threshold,” or other similar terms,depending on the context in which the threshold is used.

No element, act, or instruction used in the present application shouldbe construed as critical or essential unless explicitly described assuch. An instance of the use of the term “and,” as used herein, does notnecessarily preclude the interpretation that the phrase “and/or” wasintended in that instance. Similarly, an instance of the use of the term“or,” as used herein, does not necessarily preclude the interpretationthat the phrase “and/or” was intended in that instance. Also, as usedherein, the article “a” is intended to include one or more items, andmay be used interchangeably with the phrase “one or more.” Where onlyone item is intended, the terms “one,” “single,” “only,” or similarlanguage is used. Further, the phrase “based on” is intended to mean“based, at least in part, on” unless explicitly stated otherwise

In the preceding specification, various preferred embodiments have beendescribed with reference to the accompanying drawings. It will, however,be evident that various modifications and changes may be made thereto,and additional embodiments may be implemented, without departing fromthe broader scope of the invention as set forth in the claims thatfollow. The specification and drawings are accordingly to be regarded inan illustrative rather than restrictive sense.

We claim:
 1. A method comprising: detecting an arrival of a first robotbefore a stacked arrangement of a plurality of objects; activating anoperation of a second robot, that is separate and independent of thefirst robot, in response to detecting the arrival of the first robot,wherein activating the operation of the second robot comprises engaginga first object from the stacked arrangement using the second robot;transferring the first object from the second robot to the first robotin response to the first robot coming into alignment with the secondrobot or the stacked arrangement; detecting a completed transfer of thefirst object to the first robot; moving the first object to a particulardestination with the first robot in response to detecting the completedtransfer of the first object; detecting an arrival of a third robotbefore the stacked arrangement; and activating the operation of thesecond robot with respect to a second object in the stacked arrangementin response to detecting the arrival of the third robot, whereinactivating the operation of the second robot with respect to the secondobject comprises transferring the second object from the stackedarrangement onto the third robot using the second robot.
 2. The methodof claim 1, wherein detecting the arrival of the first robot comprises:providing a message from the first robot to the second robot that thefirst robot has arrived before the stacked arrangement; and whereinactivating the operation of the second robot further comprises:triggering the operation of the second robot in response to receivingthe message at the second robot.
 3. The method of claim 1, whereindetecting the arrival of the first robot comprises: sensing the arrivalof the first robot before the stacked arrangement using one or moresensors of the second robot; and wherein activating the operation of thesecond robot further comprises: triggering the operation of the secondrobot in response to sensing the arrival of the first robot.
 4. Themethod of claim 1, wherein the detecting arrival of the first robotcomprises: monitoring a position and a height of the first robot withone or more sensors of the second robot; and wherein activating theoperation of the second robot further comprises: triggering theoperation of the second robot in response to the position and the heightof the first robot being aligned with a position and a height of thefirst object.
 5. The method of claim 1, wherein detecting the arrival ofthe first robot comprises: moving the first robot before the stackedarrangement; aligning a platform of the first robot to a height of thefirst object in the stacked arrangement; and confirming the arrival ofthe first robot in response to the platform aligning with the height ofthe first object.
 6. The method of claim 1 further comprising:determining a particular column in a plurality of columns of the stackedarrangement in which the first object is located; aligning the firstrobot before the particular column; determining a position of the firstobject in the particular column; raising a height of the first robot toalign with the position of the first object in the particular column;and wherein activating the operation of the second robot furthercomprises: initiating the operation of the second robot in response toaligning the height of the first robot to the position of the firstobject in the particular column.
 7. The method of claim 1, whereindetecting the completed transfer of the first object comprises:determining that the first object has been placed onto the first robotusing one or more load sensors or cameras of the first robot.
 8. Themethod of claim 1, wherein detecting the completed transfer of the firstobject comprises: providing a wireless message from the second robot tothe first robot in response to the second robot releasing the firstobject onto the first robot.
 9. The method of claim 1 furthercomprising: aligning a platform of the first robot to a height of thefirst object in the stacked arrangement; and delaying said transferringof the first object until the platform of the first robot is alignedwith the height of the first object.
 10. The method of claim 1 furthercomprising: aligning a flat surface of the first robot to a height ofthe first object in the stacked arrangement; and wherein transferringthe first object comprises sliding the first object horizontally off thestacked arrangement onto the flat surface of the first robot.
 11. Themethod of claim 1, wherein transferring the first object comprises:moving the first object from the stacked arrangement onto the firstrobot with the second robot continuing to engage the first object. 12.The method of claim 1, wherein the first robot comprises a transitoryrobot with a lift that raises a platform to a plurality of heights; andwherein the second robot comprises a robot that is mounted above thestacked arrangement with an extendable mechanical arm for transferringthe plurality of objects onto different transitory robots.
 13. Themethod of claim 1, wherein transferring the first object comprisesdetecting the first object as a topmost object in the stackedarrangement using one or more sensors of the second robot; and whereintransferring the second object comprises detecting the second object asa next topmost object in the stacked arrangement that is underneath thefirst object using the one or more sensors of the second robot.
 14. Themethod of claim 1, wherein transferring the first object comprisesdetecting the first object as a topmost object in a first column of thestacked arrangement; and wherein transferring the second objectcomprises detecting the second object as a topmost object in a secondcolumn of the stacked arrangement that is adjacent to the first column.15. The method of claim 1, wherein moving the first object to theparticular destination comprises: providing a first message to the firstrobot, and a second message to the third robot; moving the first robotto the particular destination in response to the first robot receivingthe first message; and moving the third robot before the stackedarrangement in response to the third robot receiving the second message.16. The method of claim 15, wherein moving the first object to theparticular destination further comprises: providing a third message tothe second robot; and retrieving the second object from the stackedarrangement in response to the second robot receiving the third messageand before the third robot arrives before the stacked arrangement. 17.The method of claim 1 further comprising: providing a first message tothe second robot prior to the first robot arriving before the stackedarrangement; wherein activating the operation of the second robotfurther comprises: engaging the first object with the second robot inresponse to the second robot receiving the first message and before thefirst robot arrives before the stacked arrangement; and whereintransferring the first object comprises: providing a second message tothe second robot upon the first robot arriving before the stackedarrangement; and placing the first object with the second robot onto thefirst robot in response to the second robot receiving the secondmessage.
 18. The method of claim 1, wherein detecting the arrival of thefirst robot comprises: providing a first identifier associated with thestacked arrangement to the first robot; scanning a second identifieradjacent to the stacked arrangement via one or more sensors of the firstrobot; and verifying the arrival of the first robot based on the secondidentifier from said scanning matching to the first identifier.
 19. Arobotic system comprising: a first robot comprising: a motorized base; araiseable platform; and one or more processors configured to: controlthe motorized base and raiseable platform in aligning the raiseableplatform with a position of a first object in a stacked arrangement of aplurality of objects; detect a completed transfer of the first objectfrom the stacked arrangement onto the raiseable platform; and controlthe motorized base in moving the first object to a particulardestination; a second robot comprising: one or more sensors; amechanical retriever; and one or more processors configured to: detectan arrival of the first robot before the stacked arrangement; andactivate an operation of the second robot in response to detecting thearrival of the first robot, wherein activating the operation of thesecond robot comprises controlling the mechanical retriever in engagingthe first object from the stacked arrangement; and transfer the firstobject with the mechanical retriever to the first robot in response tothe raiseable platform of the first robot coming into alignment with theposition of the first object.